package com.linyu.huawei.simple;

import java.util.Scanner;

/**
 * 一种字符串压缩表示的解压
 * 如：aaaaavvvvaaad ----> 5a4v3ad
 * @author 23087
 */
public class StringZip {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 我的思路就是简单的扫描，记录
        int count = 1;

        System.out.print("请输入需要压缩的字符串：");
        String originalStr = sc.next();

        //准备拼接的字符串
        String resultStr = "";
        // 转化为字符数组方便遍历
        char[] charArray = originalStr.toCharArray();
        // 先判断是否都是英文大小写，不是直接报错
        for (int i = 0; i < charArray.length; i++) {
            if (charArray[i] < 'A' || charArray[i] > 'Z' && charArray[i] < 'a' || charArray[i] > 'z'){
                System.out.println("!error");
                return;
            }
        }
        for (int i = 0; i < charArray.length; i++) {
            // 如果是最后一个了，看情况
            if (i == charArray.length -1){
                if (count == 1){
                    resultStr = resultStr  + charArray[i];
                }else {
                    resultStr = resultStr + count + charArray[i];
                }
                break;
            }
            if (charArray[i] == charArray[i + 1]){ // 如果相等直接++，进行下一个的判断
                count++;
            }else { // 不相等情况
                if (count == 1){
                    resultStr = resultStr + charArray[i];
                }else {
                    resultStr = resultStr + count + charArray[i];
                    count = 1; // 重置为1
                }
            }
        }
        System.out.println("压缩后的字符串：" + resultStr);
    }
}
